;:sys36864 ;.opt oo *= 50000 vic =$d000 strout =$ab1e nmivec =$318 nmiposs =$dd0d rs232nmi =$fe72 endnmi =$febc qscan =$ff9f konf =1 numbkey =198 milli =$eeb3 tmp =166 clrchn =$ffcc fa =125 close =$ffc3 keybuf =630 grafik =$a000 latch =$d000 bs =$8400 tmp2 =tmp+2 bank =$dd00 getkey =$f142 shift =$28d farbram =$d800 rept =650 tmp3 =247 tmp4 =249 chkout =65481 open =65472 qciout =$ffa8 buf =690 chrgot =121 getkx =$b7f1 jmp setup hallo .byt 13 .byte "/ uniprint 24 wire v2.0 10.91" .byt 13 .byte "/ nikolaus heusler" .byt 13 .byte "/ zwengauerweg 18" .byt 13 .byte "/ 8000 muenchen 71" .byt 13,0 nmiflag brk stackptr brk colmerk brk konfmerk brk keymerk brk tmpmerk .word 0 tmp2merk .word 0 counter brk repmerk brk bmerk brk font brk screen brk backgn brk expx brk expy brk snum brk x1 .word 0 yy brk xx .word 0 hiba brk tmp3merk .word 0 tmp4merk .word 0 si brk sm brk sa brk x .word 0 y brk data brk offx brk offy .word 0 line brk colm brk c1 .byt 1 c4 .byt 4 rand brk plte brk xxb .word 0 yyb brk stop brk grbit .byt 128,64,32,16,8,4,2,1 gbit .byt 1,2,4,8,16,32,64,128 mult .word $a000,$a140,$a280,$a3c0 .word $a500,$a640,$a780,$a8c0 .word $aa00,$ab40,$ac80,$adc0 .word $af00,$b040,$b180,$b2c0 .word $b400,$b540,$b680,$b7c0 .word $b900,$ba40,$bb80,$bcc0 .word $be00 acht .byt 0,13,26 pri1 .byt 13,24,$33,27,13,64,27 setup lda #neunmi sta nmivec sty nmivec+1 lda #0 sta nmiflag sta plte jsr chrgot beq frei jsr getkx stx c1 jsr chrgot beq frei jsr getkx stx c4 frei lda #hallo jmp strout pause jsr milli dex bne pause rts scan jsr qscan sei jsr getkey sei rts rueck rts copy4 ldy #4 copy sta tmp+1 stx tmp2+1 tya tax ldy #0 sty tmp sty tmp2 php sei lda konf pha lda #48 sta konf cop lda (tmp),y sta (tmp2),y dey bne cop inc tmp+1 inc tmp2+1 dex bne cop pla sta konf plp rts savetmp lda tmp ldy tmp+1 sta tmpmerk sty tmpmerk+1 lda tmp2 ldy tmp2+1 sta tmp2merk sty tmp2merk+1 lda tmp3 ldy tmp3+1 sta tmp3merk sty tmp3merk+1 lda tmp4 ldy tmp4+1 sta tmp4merk sty tmp4merk+1 rts loadtmp lda tmpmerk ldy tmpmerk+1 sta tmp sty tmp+1 lda tmp2merk ldy tmp2merk+1 sta tmp2 sty tmp2+1 lda tmp3merk ldy tmp3merk+1 sta tmp3 sty tmp3+1 lda tmp4merk ldy tmp4merk+1 sta tmp4 sty tmp4+1 rts getform jsr scan cmp #"\x03" bne nos pla pla endfk dec vic+32 jmp master nos cmp #"1" bcc getform cmp #"4" bcs getform sec sbc #"1" tax lda acht,x sta rand rts ciout jsr qciout sei rts neunmi sei pha txa pha tya pha lda nmiflag beq cango jmp endnmi cango inc nmiflag tsx stx stackptr lda #$7f sta nmiposs lda nmiposs bpl nors232 jmp rs232nmi nors232 lda konf sta konfmerk lda #55 sta konf lda vic+33 and #$f sta backgn lda rept sta repmerk lda #64 sta rept lda numbkey sta keymerk ldx #15 jsr pause jsr savetmp ldx vic+32 stx colmerk lda shift bne start ldy #0 sty tmp lda #>grafik sta tmp+1 tya ldx #32 clear sta (tmp),y dey bne clear inc tmp+1 dex bne clear start inc vic+32 lda bank and #3 eor #3 asl asl asl asl asl asl sta hiba master jsr scan beq master cmp #3 bne nostop lda colmerk sta vic+32 lda keymerk sta numbkey lda #0 sta nmiflag lda repmerk sta rept jsr loadtmp lda konfmerk sta konf ldx stackptr txs jmp endnmi nostop cmp #136 bne nof7 lda #>bs ldx #>latch jsr copy4 ldx #4 lda #>bs sta tmp+1 lda #1 clin sta (tmp),y iny bne clin inc tmp+1 dex bne clin lda bank pha lda vic+17 pha lda vic+24 pha lda vic+22 pha lda vic+21 pha lda #0 sta vic+21 lda #1 sta bank lda #59 sta vic+17 lda #29 sta vic+24 lda #200 sta vic+22 gky jsr scan beq gky pla sta vic+21 pla sta vic+22 pla sta vic+24 pla sta vic+17 pla sta bank lda #>latch ldx #>bs jsr copy4 jmp master nof7 cmp #135 bne nof5 inc vic+32 php sei lda konf pha lda #48 sta konf ldy #0 sty tmp lda #>grafik sta tmp+1 ldx #32 inv lda (tmp),y eor #-1 sta (tmp),y iny bne inv inc tmp+1 dex bne inv pla sta konf plp jmp endfk nof5 cmp #139 bne nof6 ldx #32 ldy #0 sty tmp lda #>grafik sta tmp+1 inc vic+32 lda #8 sta counter php sei lda konf pha lda #48 sta konf grid lda (tmp),y eor #1 sta (tmp),y dec counter bne noc lda #8 sta counter lda (tmp),y eor #-2 sta (tmp),y noc iny bne grid inc tmp+1 dex bne grid pla sta konf plp dec vic+32 nof6 cmp #133 beq jaf1 jmp nof1 jaf1 inc vic+32 lda vic+17 and #32 bne graphik jmp text graphik lda vic+24 and #8 asl asl ora hiba ldx #>grafik ldy #32 jsr copy eot jmp endfk text lda bank and #3 eor #3 sta bmerk lda vic+24 and #14 asl asl ldx #48 cmp #$10 beq sonder cmp #$18 bne usual sonder ldy bmerk cpy #1 beq usual cpy #3 beq usual ldx #51 clc adc #$c0 bne goon usual ora hiba goon sta font lda vic+24 and #$f0 lsr lsr ora hiba sta screen php sei lda konf pha stx konf lda #4 sta counter lda #0 sta tmp3 sta tmp lda screen sta tmp3+1 lda #>grafik sta tmp+1 loop0 lda #0 sta tmp2 lda font sta tmp2+1 jsr allwtest beq nix lda (tmp3),y tax beq loop1 loop2 lda tmp2 clc adc #8 sta tmp2 bcc loop4 inc tmp2+1 loop4 dex bne loop2 loop1 ldy #7 loop5 lda (tmp2),y sta (tmp),y dey bpl loop5 nix lda tmp clc adc #8 sta tmp bcc loop7 inc tmp+1 loop7 inc tmp3 bne loop0 inc tmp3+1 dec counter bne loop0 pla sta konf plp jmp eot allwtest lda tmp3 sta tmp4 lda tmp3+1 and #3 ora #>farbram sta tmp4+1 ldy #0 ldx konf lda #55 sta konf lda (tmp4),y and #$f stx konf cmp backgn rts nof1 cmp #134 beq jaf3 jmp nof3 jaf3 lda #7 sta snum inc vic+32 sp0 lda vic+21 ldx snum and gbit,x bne sp1 jmp sp2 tobi jmp sp2 sp1 lda vic+39,x and #$f cmp backgn beq tobi lda vic+23 and gbit,x sta expy lda vic+29 and gbit,x sta expx lda vic+16 and gbit,x beq t lda #1 t pha txa asl tax lda vic,x sec sbc #24 sta x1 pla sbc #0 sta x1+1 lda vic+1,x sec sbc #50 sta yy lda vic+24 and #$f0 lsr lsr ora hiba clc adc #3 sta tmp4+1 lda #$f8 sta tmp4 ldy snum lda (tmp4),y ldx #6 sta tmp3 lda #0 sta tmp3+1 mal64 asl tmp3 rol tmp3+1 dex bne mal64 lda tmp3+1 ora hiba sta tmp3+1 lda #0 sta si sp3 lda #0 sta sm lda x1 sta xx lda x1+1 sta xx+1 sp4 php sei lda konf pha lda #48 sta konf ldy #0 lda (tmp3),y sta data pla sta konf plp lda #7 sta sa sp5 lda data ldx sa and gbit,x beq sp6 jsr qplot sp6 inc xx bne sp6a inc xx+1 sp6a lda expx beq sp6aa inc xx bne sp6aa inc xx+1 sp6aa dec sa bpl sp5 inc tmp3 bne sp7 inc tmp3+1 sp7 inc sm lda sm cmp #3 bcc sp4 inc yy lda expy beq sp7a inc yy sp7a inc si lda si cmp #21 bcc sp3 sp2 dec snum bmi eos jmp sp0 eos jmp endfk test dec plte plot ldx yy cpx #200 bcs ngut lda xx+1 cmp #1 bcc okay beq test2 ngut lda #0 sta plte rts test2 lda xx cmp #64 bcs ngut okay txa lsr lsr lsr asl tay lda mult+1,y sta tmp+1 txa and #7 clc adc mult,y sta tmp lda xx and #$f8 adc tmp sta tmp lda tmp+1 adc xx+1 sta tmp+1 php sei lda konf pha lda #48 sta konf lda xx and #7 tax lda grbit,x ldy plte bne tst ldy #0 ora (tmp),y sta (tmp),y pla sta konf plp rts tst ldy #0 sty plte and (tmp),y tay pla sta konf plp tya rts qqplot jsr plot lda expx beq noex inc xx bne v2 inc xx+1 v2 jsr plot lda xx bne v2a dec xx+1 v2a dec xx noex rts qplot jsr qqplot lda expy beq noex inc yy jsr qqplot dec yy rts nof3 cmp #140 beq print jmp nof8 print inc vic+32 jsr getform sei lda #fa ldx c4 ldy c1 jsr $ffba lda #0 jsr $ffbd jsr open ldx #fa jsr chkout ldx #6 p1out lda pri1,x jsr ciout dex bpl p1out ldy #0 sty tmp lda #>grafik sta tmp+1 lda #25 sta line zeile jsr scan cmp #3 bne weiter jmp endlin weiter lda #32 ldx rand beq nora marg jsr ciout dex bne marg nora jsr esc lda #"*" jsr ciout lda #$27 jsr ciout lda #<960 jsr ciout lda #>960 jsr ciout lda #40 sta colm spalte lda konf pha sei lda #54 sta konf ldy #0 robyte ldx #0 lda (tmp),y robit asl rol buf,x inx cpx #8 bne robit iny cpy #8 bne robyte pla sta konf ldx #7 nadel24 ldy #7 nadel25 lda buf,x asl rol buf+8,x rol buf+16,x rol buf+24,x lda buf,x asl rol buf+8,x rol buf+16,x rol buf+24,x lda buf,x asl rol buf+8,x rol buf+16,x rol buf+24,x sta buf,x dey bpl nadel25 dex bpl nadel24 ldx #0 ausgabe lda buf+24,x jsr ciout lda buf+16,x jsr ciout lda buf+8,x jsr ciout lda buf+24,x jsr ciout lda buf+16,x jsr ciout lda buf+8,x jsr ciout lda buf+24,x jsr ciout lda buf+16,x jsr ciout lda buf+8,x jsr ciout inx cpx #8 bne ausgabe clc lda tmp adc #8 sta tmp bcc noinc inc tmp+1 noinc dec colm beq endcol jmp spalte endcol lda #13 jsr ciout dec line beq endlin jmp zeile endlin jsr esc lda #64 jsr ciout lda #13 jsr ciout jsr clrchn lda #fa jsr close cli jmp endfk esc lda #27 jmp ciout nof8 cmp #138 beq frame jmp master frame inc vic+32 lda #200 sta yy yfr dec yy lda #0 sta xx sta xx+1 jsr pla3 inc xx+1 lda #63 sta xx jsr pla4 lda yy bne yfr dec xx+1 lda #0 sta xx xfr lda #0 sta yy jsr pla1 lda #199 sta yy jsr pla2 inc xx bne xxf inc xx+1 xxf lda xx+1 beq xfr lda xx cmp #64 bcc xfr jmp endfk pla1 inc yy jsr test dec yy jsr dia bne schluss rein jmp plot pla2 dec yy jsr test inc yy jsr dia beq rein rts pla3 inc xx jsr test dec xx jsr dia beq rein rts pla4 dec xx jsr test inc xx jsr dia beq rein rts dia and #-1 beq naja schluss rts naja sta stop dec yy jsr testx inc yy inc yy jsr testx dec yy lda stop rts testx inc xx bne rt1 inc xx+1 rt1 jsr test ora stop sta stop sec lda xx sbc #2 sta xx lda xx+1 sbc #0 sta xx+1 jsr test ora stop sta stop inc xx bne schluss inc xx+1 rts